home *** CD-ROM | disk | FTP | other *** search
/ Business Assistant / Business Assistant.iso / acctg / tonyray1 / bill3.prg < prev    next >
Text File  |  1985-09-01  |  6KB  |  321 lines

  1. SET DEVI TO PRINT
  2. line=1
  3. MNAME='ROBERT A. RAY,P.C.'
  4. POS=40-LEN(TRIM(MNAME))/2
  5. @ 01,POS SAY MNAME
  6. MADDRESS='P.O. BOX 614,423 S. SPRING'
  7. POS=40-LEN(TRIM(MADDRESS))/2
  8. @ 02,POS SAY MADDRESS
  9. MCITY='TYLER,TEXAS 75710'
  10. POS=40-LEN(TRIM(MCITY))/2
  11. @ 03,POS SAY MCITY
  12. @ 04,38 say '* * *'
  13. mphone='214-593-2020'
  14. pos=40-len(trim(mphone))/2
  15. @05,pos say mphone
  16. LINE=PROW()+5
  17. FIND '&mfile_nmbr'
  18. @line,04 say clientname
  19. @line,51 say 'File number - RAR'+file_nmbr
  20. @line+1,04 say cstreet
  21. @line+1,51 say 'Ref: '+reference
  22. @line+2,04 say ccity_st
  23. @line+2,51 say 'Billing date: '+dtoc(date())
  24. @line+4,04 say 'ATTEN: '+contact
  25. @LINE+6,00 SAY "PREVIOUS MONTH'S BALANCE"
  26. @LINE+6,65 SAY '$'
  27. @line+6,66 say str(prev_bal,8,2)
  28. MCODE=CODE
  29. sele SERVICE
  30. FIND '&mfile_nmbr'
  31. line=prow()+3
  32. @LINE,00 SAY 'DATE'
  33. @line,11 say 'PROFESSIONAL SERVICES RENDERED'
  34. @LINE,PCOL()+10 SAY 'INDIV HOURS'
  35. line=prow()+2
  36. IF EOF()
  37. @LINE,12 say '(NO BILLABLE TIME THIS MONTH)'
  38. TOTALSER=0.00
  39. MSERCOUNT=0
  40. ELSE
  41. MSERCOUNT=0
  42. FIND '&MFILE_NMBR'
  43. DO WHIL FILE_NMBR='&MFILE_NMBR' .and. .not. eof()
  44. IF KIND='SER'.AND. .NOT. CLOSED
  45. MSERCOUNT=MSERCOUNT+1
  46. ENDI
  47. SKIP
  48. ENDD
  49. IF MSERCOUNT=0
  50. @LINE,12 SAY '(NO BILLABLE TIME THIS MONTH)'
  51. ENDI
  52. IF MSERCOUNT<=10 .AND. MSERCOUNT>0
  53. FIND '&MFILE_NMBR'
  54. DO WHIL  FILE_NMBR='&MFILE_NMBR' .and. .not. eof() 
  55. IF KIND='SER'.AND. .NOT. CLOSED
  56. @ line,00 say DTOC(date)+' - '+second+'  '+TIMEKEEP
  57. @ LINE,57 SAY HOURS  
  58. @ LINE,65 SAY '$'
  59. @ LINE,66 SAY str(AMOUNT,8,2)  
  60. line=line+1
  61. SKIP
  62. ELSE
  63. SKIP
  64. ENDI
  65. ENDD
  66. ENDI
  67. IF MSERCOUNT>10
  68. @ LINE,12 SAY '(SEE ATTACHED LIST)'
  69. ENDI
  70. IF MCODE='5'
  71. TOTALSER=0.00
  72. ELSE
  73. TOTALSER=0.00
  74. FIND '&MFILE_NMBR'
  75. DO WHIL FILE_NMBR='&MFILE_NMBR' .and. .not. eof()
  76. IF KIND='SER'.AND. .NOT. CLOSED
  77. TOTALSER=TOTALSER+AMOUNT
  78. SKIP
  79. ELSE
  80. SKIP
  81. ENDI
  82. ENDD
  83. ENDI
  84. ENDI
  85. line=prow()+2
  86. @line,00 SAY 'TOTAL FOR THE ABOVE SERVICES'
  87. @line,65 SAY '$'
  88. @line,66 SAY str(TOTALSER,8,2)  
  89. line=prow()+2
  90. @line,00 SAY 'DATE        OUT OF POCKET EXPENSES' 
  91. SELE SERVICE
  92. LINE=PROW()+2
  93. FIND '&MFILE_NMBR'
  94. IF EOF()
  95. @LINE,12 say '(NO BILLABLE EXPENSES THIS MONTH)'
  96. TOTALEXP=0.00
  97. MEXPCOUNT=0
  98. ELSE
  99. MEXPCOUNT=0
  100. FIND '&MFILE_NMBR'
  101. DO WHIL FILE_NMBR='&MFILE_NMBR' .and. .not. eof()
  102. IF KIND='EXP'.AND. .NOT. CLOSED
  103. MEXPCOUNT=MEXPCOUNT+1
  104. SKIP
  105. ELSE
  106. SKIP
  107. ENDI
  108. ENDD
  109. IF MEXPCOUNT=0
  110. @LINE,12 SAY '(NO BILLABLE EXPENSES THIS MONTH)'
  111. ENDI
  112. IF MEXPCOUNT<=05 .AND. MEXPCOUNT>0
  113. FIND '&MFILE_NMBR'
  114. DO WHIL  FILE_NMBR='&MFILE_NMBR' .and. .not. eof()
  115. IF KIND='EXP'.AND. .NOT. CLOSED
  116. @ line,00 say DTOC(date)+' - '+second
  117. @ LINE,65 SAY '$' 
  118. @ LINE,66 SAY str(AMOUNT,8,2)  
  119. line=line+1
  120. SKIP
  121. ELSE
  122. SKIP
  123. ENDI
  124. ENDD
  125. ENDI
  126. IF MEXPCOUNT>5
  127. @ LINE,12 SAY '(SEE ATTACHED LIST)'
  128. ENDI
  129. TOTALEXP=0.00 
  130. FIND '&MFILE_NMBR'
  131. DO WHIL FILE_NMBR='&MFILE_NMBR' .and. .not. eof()
  132. IF KIND='EXP'.AND. .NOT. CLOSED
  133. TOTALEXP=TOTALEXP+AMOUNT
  134. SKIP
  135. ELSE
  136. SKIP
  137. ENDI
  138. ENDD
  139. ENDI
  140. LINE=PROW()+2
  141. @ LINE,00 SAY 'TOTAL FOR THE ABOVE EXPENSES'
  142. @ LINE,65 SAY '$'
  143. @ LINE,66 SAY str(TOTALEXP,8,2)
  144. LINE=PROW()+2
  145. SELE CURRENT
  146. @LINE,26 SAY 'TOTAL CURRENT SERVICES AND EXPENSES'
  147. @LINE,65 SAY '$'
  148. mstr2=totalser+totalexp
  149. @LINE,66 SAY str(mstr2,8,2)
  150. LINE=PROW()+2
  151. @ LINE,40 SAY 'PAYMENT RECEIVED'
  152. SELE SERVICE
  153. FIND '&MFILE_NMBR'
  154. LINE=PROW()+2
  155. IF EOF()
  156. @LINE,40 SAY '(NO PAYMENT RECEIVED)'
  157. TOTALPAY=0.00
  158. MPAYCOUNT=0
  159. ELSE
  160. MPAYCOUNT=0
  161. FIND '&MFILE_NMBR'
  162. DO WHIL FILE_NMBR='&MFILE_NMBR' .and. .not. eof()
  163. IF KIND='PAY'.AND. .NOT. CLOSED
  164. MPAYCOUNT=MPAYCOUNT+1
  165. SKIP
  166. ELSE
  167. SKIP
  168. ENDI
  169. ENDD
  170. IF MPAYCOUNT=0
  171. @LINE,40 SAY '(NO PAYMENT RECEIVED)'
  172. ENDI
  173. IF MPAYCOUNT<=03 .AND. MPAYCOUNT>0
  174. FIND '&MFILE_NMBR'
  175. DO WHIL FILE_NMBR='&MFILE_NMBR' .and. .not. eof()
  176. IF KIND='PAY'.AND. .NOT. CLOSED
  177. @LINE,40 SAY DTOC(DATE)+' - '+'$' 
  178. @LINE,PCOL()+1 SAY str(AMOUNT,8,2)  
  179. LINE=LINE+1
  180. SKIP
  181. ELSE
  182. SKIP
  183. ENDI
  184. ENDD
  185. ENDI
  186. IF MPAYCOUNT>3
  187. @ LINE,40 SAY '(SEE ATTACHED)'
  188. ENDI
  189. LINE=PROW()+2
  190. @LINE,40 SAY 'TOTAL PAYMENTS'
  191. TOTALPAY=0.00
  192. FIND '&MFILE_NMBR'
  193. DO WHIL FILE_NMBR='&MFILE_NMBR' .and. .not. eof()
  194. IF KIND='PAY'.AND. .NOT. CLOSED
  195. TOTALPAY=TOTALPAY+AMOUNT
  196. SKIP
  197. ELSE
  198. SKIP
  199. ENDI
  200. ENDD
  201. ENDI
  202. @LINE,65 SAY '$'
  203. @LINE,66 SAY str(TOTALPAY,8,2)  
  204. FIND '&mfile_nmbr'
  205. IF eof()
  206. totalser=0.00
  207. totalexp=0.00
  208. totalpay=0.00
  209. ELSE
  210. totalser=0.00
  211. totalexp=0.00
  212. totalpay=0.00
  213. DO WHIL file_nmbr='&mfile_nmbr' .and. .not. eof()
  214. DO CASE
  215. CASE UPPER(kind)='SER'
  216. totalser=totalser+amount
  217. CASE UPPER(kind)='EXP'
  218. totalexp=totalexp+amount
  219. CASE UPPER(kind)='PAY'
  220. totalpay=totalpay+amount
  221. ENDC
  222. SKIP
  223. ENDD
  224. ENDI
  225. SELE CURRENT
  226. FIND '&MFILE_NMBR'
  227. TEMPDUE=0.00
  228. IF hold
  229. tempdue=totalexp-totalpay
  230. ELSE
  231. IF totalser<begin_bal
  232. TEMPDUE=(begin_bal+totalexp)-totalpay
  233. ELSE
  234. TEMPDUE=(totalser+totalexp)-totalpay
  235. ENDI
  236. ENDI
  237. LINE=PROW()+2
  238. @ LINE,50 SAY 'AMOUNT DUE'
  239. @ LINE,65 SAY '$'
  240. @ LINE,66 SAY str(TEMPDUE,8,2)
  241. IF tempdue<0
  242. @line,75 say 'CR'
  243. ENDI
  244. IF MSERCOUNT>10 .OR. MEXPCOUNT>5 .OR. MPAYCOUNT>3
  245. EJEC
  246. LINE=01
  247. IF MSERCOUNT>10 
  248. SELE SERVICE
  249. LINE=LINE+2
  250. @LINE,00 SAY 'DATE       PROFESSIONAL SERVICES RENDERED'
  251. @LINE,PCOL()+10 SAY 'INDIV HOURS'
  252. LINE=5
  253. FIND '&MFILE_NMBR'
  254. DO WHIL FILE_NMBR='&MFILE_NMBR' .and. .not. eof()
  255. IF KIND='SER'.AND. .NOT. CLOSED
  256. @LINE,00 SAY DTOC(DATE)+' - '+SECOND+'  '+TIMEKEEP
  257. @LINE,57 SAY HOURS  
  258. @LINE,65 SAY '$' 
  259. @LINE,66 SAY str(AMOUNT,8,2)  
  260. SKIP
  261. LINE=LINE+1
  262. IF LINE>=56
  263. EJEC
  264. LINE=01
  265. ENDI
  266. ELSE
  267. SKIP
  268. ENDI
  269. ENDD
  270. ENDI
  271. LINE=PROW()+2
  272. IF MEXPCOUNT>5
  273. SELE SERVICE
  274. @LINE,00 SAY 'DATE        EXPENSES'
  275. LINE=LINE+2
  276. FIND '&MFILE_NMBR'
  277. DO WHIL FILE_NMBR='&MFILE_NMBR' .and. .not. eof()
  278. IF KIND='EXP'.AND. .NOT. CLOSED
  279. @LINE,00 SAY DTOC(DATE)+' - '+SECOND
  280. @LINE,65 SAY '$'
  281. @LINE,66 SAY str(AMOUNT,8,2)  
  282. SKIP
  283. LINE=LINE+1
  284. IF LINE>=56
  285. EJEC
  286. LINE=01
  287. ENDI
  288. ELSE
  289. SKIP
  290. ENDI
  291. ENDD
  292. ENDI
  293. LINE=PROW()+2
  294. IF MPAYCOUNT>3
  295. SELE SERVICE
  296. @LINE,00 SAY 'DATE        PAYMENT'
  297. LINE=LINE+2
  298. FIND '&MFILE_NMBR'
  299. DO WHIL FILE_NMBR='&MFILE_NMBR' .and. .not. eof()
  300. IF KIND='PAY'.AND. .NOT. CLOSED
  301. @LINE,00 SAY DTOC(DATE)+' - '
  302. @LINE,12 SAY AMOUNT  
  303. SKIP
  304. LINE=LINE+1
  305. IF LINE>=56
  306. EJEC
  307. LINE=01
  308. ENDI
  309. ELSE
  310. SKIP
  311. ENDI
  312. ENDD
  313. ENDI
  314. ENDI
  315. SET DEVI TO SCREEN
  316. SET PRIN ON
  317. EJEC
  318. SET PRIN OFF
  319. CLEA
  320. RETU
  321.